package com.xuhao.examai.scoring.domain.repositories;

import com.xuhao.examai.scoring.domain.models.ExamRecord;
import java.util.List;
import java.util.Optional;

/**
 * 考试记录仓储接口
 */
public interface ExamRecordRepository {

	/**
	 * 保存考试记录
	 */
	ExamRecord save(ExamRecord examRecord);

	/**
	 * 根据ID查找考试记录
	 */
	Optional<ExamRecord> findById(Long id);

	/**
	 * 根据考试ID查找考试记录列表
	 */
	List<ExamRecord> findByExamId(Long examId);

	/**
	 * 根据学生ID查找考试记录列表
	 */
	List<ExamRecord> findByStudentId(Long studentId);

	/**
	 * 根据状态查找考试记录列表
	 */
	List<ExamRecord> findByStatus(String status);

	/**
	 * 根据考试ID和学生ID查找考试记录
	 */
	Optional<ExamRecord> findByExamIdAndStudentId(Long examId, Long studentId);

	/**
	 * 删除考试记录
	 */
	void deleteById(Long id);

	/**
	 * 检查考试记录是否存在
	 */
	boolean existsById(Long id);
}